Various aspects of the present invention relate generally to providing a virtual machine according to a user's specification for use on a hypervisor.
Virtual machines allow the use of different software installations that would normally require different hardware platforms to be run on a physical machine. For example, high performance server computers can be easily accessed from different client computers, such that the user does not have to be aware of the underlying hardware of the server for running the desired software. Basically, a hypervisor, or virtual machine manager, is installed on a hardware platform and provides an environment for running one or more virtual machines. Each virtual machine can function as a guest, which allows the execution of an appropriate operation system necessary to run desired applications. The hypervisor itself can run directly on the hardware platform without a separate operating system, or the hypervisor can run as an application within a standard operating system like Linux, Windows, or others. Also, the hypervisor can run on an intermediate abstraction layer.
To provide a suitable virtual machine, the user may be provided with the option to specify an operating system to be used as a basis for further software elements. Moreover, the user may be provided with the option to specify a combination of middleware as well as specific applications and utilities to be available to the operating system in the virtual machine. Regardless, to allow efficient operation, the virtual machines should be provided in a timely fashion upon request by the user and with limited resource utilization.